package com.yqs.servlet; /**
 * @author Ye QS
 * @className ${NAME}
 * @description ${description}
 * @version 0.1
 * @date 2024/8/3 9:23
 * @since jdk11
 */

import com.yqs.entity.Emp;
import com.yqs.mapper.EmpMapper;
import com.yqs.utils.JsonUtil;
import com.yqs.utils.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

// 定义一个名为EmpDetailServlet的类，它继承自HttpServlet
@WebServlet("/empDetail")
public class EmpDetailServlet extends HttpServlet {

    // 处理GET请求的方法，这里重定向到POST请求的处理方法
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    // 处理POST请求的方法
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取SqlSession对象，它是MyBatis中用于执行数据库操作的对象
        SqlSession session = SqlSessionFactoryUtil.getSqlSession();
        // 通过SqlSession获取EmpMapper接口的实例，用于访问数据库中的员工数据
        EmpMapper mapper = session.getMapper(EmpMapper.class);
        // 从请求中获取员工ID，并转换为整数
        int empId = Integer.parseInt(request.getParameter("empId"));
        // 使用EmpMapper的getEmpById方法根据员工ID获取员工信息
        Emp emp = mapper.getEmpById(empId);
        // 将获取的员工信息设置到Session中，以便后续页面可以访问
        request.getSession().setAttribute("emp", emp);
        // 重定向到updateEmp.jsp页面，员工信息将在此页面显示
        response.sendRedirect("updateEmp.jsp");
        // 注意：这里没有关闭SqlSession，应该在操作完成后关闭它以释放资源
    }
}
